package co.com.ticci.mb;


import java.util.Date;
import java.util.List;

import javax.faces.component.html.HtmlInputText;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;

import co.com.autolavado.ln.ServicioLn;
import co.com.ticci.autolavado.vo.TicciConceptoXClasificacion;
import co.com.ticci.autolavado.vo.TicciServicio;
import co.com.ticci.autolavado.vo.TicciServicioPK;
import co.com.ticci.autolavado.vo.TicciVehiculo;
import co.com.ticci.mb.general.GeneralMB;
import co.com.ticci.mb.general.Utilidades;

public class ServicioMB extends GeneralMB {

	private ServicioLn 						  servicioLn;
	private TicciServicio 					  servicioActual;
	private List<TicciConceptoXClasificacion> listaConceptoClasificacion;
	
	
	public ServicioMB() {
		this.servicioLn = new ServicioLn();
	}
	
	@Override
	public void insertar(ActionEvent ae)
	{
		TicciServicioPK servicioPk 	= new TicciServicioPK();
		TicciServicio 	servicio 	= new TicciServicio();
		servicioPk.setEmprCons(this.getTo().getEmprCons());
		servicioPk.setAutoCons(this.getTo().getAutoCons());
		servicioPk.setServCons(-1);
		servicio.setId(servicioPk);
		servicio.setServFecha(new Date());
		servicio.setTicciVehiculo(new TicciVehiculo());
		this.getCrud().agregarElemento(servicio);
		servicioActual = (TicciServicio) this.getCrud().getPrimerElemento();		
		
	}
	public void recuperarVehiculo(AjaxBehaviorEvent ae)
	{
		TicciServicio servicio = (TicciServicio) this.getCrud().getPrimerElemento();
		TicciVehiculo vehiculo = servicioLn.getVehiculoByPlaca(this.getTo().getEmprCons(), ((HtmlInputText) ae.getComponent()).getValue().toString());
		if(null != vehiculo)
		{
			servicio.setTicciVehiculo(vehiculo);
			listaConceptoClasificacion = servicioLn.getConceptoByClasificacion(this.getTo().getEmprCons(), this.getTo().getAutoCons(), vehiculo.getMaesClasificacion().intValue());
			
			if(listaConceptoClasificacion.isEmpty())
			{
				Utilidades.agregarMensaje("Resultado", "No existen conceptos para este tipo de vehiculo, favor configurarlos", Utilidades.ADVERTENCIA);
			}
		}
		else
		{
			Utilidades.agregarMensaje("Resultado", "El vehiculo con la placa digitada no existe", Utilidades.ADVERTENCIA);
		}
		
	}

	public TicciServicio getServicioActual() {
		return servicioActual;
	}

	public void setServicioActual(TicciServicio servicioActual) {
		this.servicioActual = servicioActual;
	}

	public List<TicciConceptoXClasificacion> getListaConceptoClasificacion() {
		return listaConceptoClasificacion;
	}

	public void setListaConceptoClasificacion(
			List<TicciConceptoXClasificacion> listaConceptoClasificacion) {
		this.listaConceptoClasificacion = listaConceptoClasificacion;
	}
	
	
}
